package com.fowo.api.common.annotaion;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 设置敏感数据字段并提供去敏选项，
 * 请使用 DataUtils.desensitization 对数据进行去敏
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Sensitive {

    SensitiveType value() default SensitiveType.Null;

    public enum SensitiveType {
        /**
         * 清空数据
         */
        Null,
        /**
         * 开始部分替换为星号
         */
        StartStar,
        /**
         * 中间部分替换为星号
         */
        CenterStar,
        /**
         * 结尾部分替换为星号
         */
        EndStar
    }
}
